package com.asia5b.debugapp

import com.asia5b.a5mall.middleware.api.NetFectory
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import timber.log.Timber

/**
 * Created by zhangyuncai on 2020/8/7.
 */
fun printJson(msg: String, notify: (String) -> Unit) {

    var message: String

    try {
        if (msg.startsWith("{")) {
            val jsonObject = JSONObject(msg)
            message = jsonObject.toString(4)//最重要的方法，就一行，返回格式化的json字符串，其中的数字4是缩进字符数
        } else if (msg.startsWith("[")) {
            val jsonArray = JSONArray(msg)
            message = jsonArray.toString(4)
        } else {
            message = msg
        }
    } catch (e: JSONException) {
        message = msg
    }

    notify("╔═══════════════════════════════════════════════════════════════════════════════════════")
    message = NetFectory.LINE_SEPARATOR + message
    val lines = message.split(NetFectory.LINE_SEPARATOR.toRegex()).dropLastWhile({ it.isEmpty() }).toTypedArray()
    for (line in lines) {
        //            LogUtil.d("", line);
        notify(line)
    }
    notify("╚═══════════════════════════════════════════════════════════════════════════════════════")
}